/*
 * Element.h
 *
 *  Created on: Apr 19, 2009
 *      Author: wrice
 */

#ifndef ELEMENT_H_
#define ELEMENT_H_

#include "DOMCore.h"
namespace DOMCore {

class Element : EXTENDS_INTERFACE( Node ) {
public:
	virtual DOMString getTagName() = 0;

	virtual DOMString getAttribute(DOMString name) = 0;
	virtual void setAttribute(DOMString name, DOMString value) throw(DOMExceptionPtr) = 0;
	virtual void removeAttribute(DOMString name) throw(DOMExceptionPtr) = 0;

	virtual Attr * getAttributeNode(DOMString name) = 0;
	virtual Attr * setAttributeNode(Attr * newAttr) throw(DOMExceptionPtr) = 0;
	virtual Attr * removeAttributeNode(Attr * oldAttr) throw(DOMExceptionPtr) = 0;

	virtual NodeList * getElementsByTagName(DOMString name) = 0;

	virtual bool hasAttribute(DOMString name) = 0;
};

}

#endif /* ELEMENT_H_ */
